package br.com.news.business;

import java.util.List;

import javax.inject.Inject;
import javax.inject.Named;

import br.com.news.business.utils.GenericBusiness;
import br.com.news.utils.business.exception.BusinessException;
import br.com.news.utils.business.interfaces.ICategoriaUsuarioBusiness;
import br.com.news.utils.database.beans.CategoriaUsuarioBean;
import br.com.news.utils.database.beans.UsuarioBean;
import br.com.news.utils.database.exception.DataBaseServiceException;
import br.com.news.utils.database.interfaces.ICategoriaUsuarioServiceDb;

@Named
public class CategoriaUsuarioBusiness extends GenericBusiness implements ICategoriaUsuarioBusiness{

	@Inject
	private ICategoriaUsuarioServiceDb categoriaUsuarioServiceDb;
	
	@Override
	public List<CategoriaUsuarioBean> findAll() throws BusinessException {
		try {
			return categoriaUsuarioServiceDb.findAll();
		} catch (DataBaseServiceException e) {
			throw new BusinessException(e);
		}
	}
	
	@Override
	public List<CategoriaUsuarioBean> buscaCategoriasDeEnvioEmailDoUsuario(UsuarioBean usuario) {
		return categoriaUsuarioServiceDb.buscaCategoriasDeEnvioEmailDoUsuario(usuario);
	}
	
	@Override
	public List<CategoriaUsuarioBean> buscaCategoriaDoUsuario(String idUsuario) {
		return categoriaUsuarioServiceDb.buscaCategoriaDoUsuario(idUsuario);
	}
	
	@Override
	public void save(CategoriaUsuarioBean categoriaUsuarioBean) throws BusinessException {
		try {
			categoriaUsuarioServiceDb.insert(categoriaUsuarioBean);
		} catch (DataBaseServiceException e) {
			throw new BusinessException(e);
		}
	}
	
	@Override
	public void update(CategoriaUsuarioBean categoriaUsuarioBean) throws BusinessException {
		try {
			categoriaUsuarioServiceDb.update(categoriaUsuarioBean);
		} catch (DataBaseServiceException e) {
			throw new BusinessException(e);
		}
	}
	
	@Override
	public void remove(CategoriaUsuarioBean categoriaUsuarioBean) throws BusinessException {
		try {
			categoriaUsuarioServiceDb.delete(categoriaUsuarioBean);
		} catch (DataBaseServiceException e) {
			throw new BusinessException(e);
		}
	}

}
